Implementing lockstep processing involves arranging two identical processors to execute side-by-side, where one processor executes under the same circumstances as the other processor. An implementation of lockstep processing may involve initializing each processor to the same state during system start-up and providing each processor with the same inputs (code, bus operations, and asynchronous events) so that each processor may execute under the same circumstances during normal execution based on a clock signal. Lockstep processing can be used to detect an error in either of the processors by detecting a difference resulting from a comparison of the states of the processors monitored in a lockstep system. Lockstep processing is used to achieve high reliability in a microprocessor system where one processor can monitor and verify the operation of the other processor.
Some systems employ delayed lockstep processing in which execution of one processor is delayed and a corresponding delay of output of the other processor is implemented before output of both processors is compared. Such a delayed lockstep processor architecture may provide a way to detect non-deterministic types of failures, such as chip operating temperature or voltage drop associated with the common clock or the supply voltage.